#include <iostream>
#include <stack>

using namespace std;

bool isSubSequence(char *s1, char *s2, int i1, int i2, int s1Len, int s2Len)
{
	if (i1 >= s1Len && i2 < s2Len)
		return false;
	
	if (i2 >= s2Len)
		return true;

	for (int i = i1; i < s1Len; i++) {
		if (s1[i] == s2[i2]) {
			return isSubSequence(s1, s2, i + 1, i2 + 1, s1Len, s2Len);
		}
	}	
	return false;
}

//bool isSubSequence(char *s1, char *s2, int s1Len, int s2Len) 
//{
//	typedef pair<int, int> Int_Pair;
//	stack<Int_Pair> equals;
//	int i = 0;
//	for (; i < s1Len; i++) {
//		if (s1[i] == s2[0])
//			break;
//	}
//
//	if (i >= s1Len)
//		return false;
//	equals.push(Int_Pair(i, 0));
//
//	while (true) {
//		Int_Pair eq = equals.top();
//		bool isFind = true;
//		for (int k = eq.second + 1; k < s2Len;) {
//			for (int j = eq.first + 1; j < s1Len; j++) {
//				if (s2[k] == s1[j]) {
//					equals.push(Int_Pair(j, k));
//					++k;
//					break;
//				}
//			}
//			if (j >= s1Len) {
//				isFind = false;
//				break;
//			}
//		}
//		if (!isFind) {
//
//		}		
//	}
//
//}	

int main(int argc, char* args[])
{
	const int MAX = 101;
	char s1[MAX], s2[MAX];

	int T;
	scanf("%d", &T);
	for (int i = 0; i < T; i++) {
		scanf("%s %s", s1, s2);

		int s1Len = strlen(s1), s2Len = strlen(s2);
		/*int *f = new int[s2Len];
		f[0] = -1;
		int j = 1;
		while (j < s2Len) {
			int u = f[j - 1];
			while(s2[j] != s2[u + 1] && u >= 0)
				u = f[u];
			if (s2[j] == s2[u + 1]) {
				f[j] =  u + 1;
			} else {
				f[j] = -1;
			}
			++j;
		}*/



		if (isSubSequence(s1, s2, 0, 0, s1Len, s2Len))
			printf("YES\n");
		else {
			for (int j = 0; j < s2Len / 2; j++) {
				char temp = s2[j];
				s2[j] = s2[s2Len - j - 1];
				s2[s2Len - j - 1] = temp;
			}

			if (isSubSequence(s1, s2, 0, 0, s1Len, s2Len))
				printf("YES\n");
			else
				printf("NO\n");

		}
	}
	return 0;
}